




class Solution { // 875 O(n log m) O(1)
public:
int minEatingSpeed(vector<int>& p, int g) {
int l = 1, r = *max_element(p.begin(), p.end());
while (l < r) {
int k = l + (r - l) / 2;
long long m = 0;
for (int x : p) {
m += (x + k - 1) / k;
if (m > g) break;
}
if (m <= g) r = k;
else l = k + 1;
}
return l;
}
};